import TwoFileRefactoringDetector from "./TwoFileRefactoringDetector";
import VisCUNode from "./VisCUNode";

export default interface VisFragment {
  [key: string]: any; //可以用string遍历对象属性，不是很好的解决方案

  repoIdentifier: string;
  startCommitId: string;
  endCommitId: string;
  originalDir: string;
  modifiedDir: string;

  cuPairsWithDetector: PairWithDetector[];
}

export interface PairWithDetector {
  pair: Pair<VisCUNode, VisCUNode>;
  detector?: TwoFileRefactoringDetector;
}

export interface Pair<T1, T2> {
  a?: T1;
  b?: T2;
}
